The present invention relates to an operation control method for an industrial robot, and in particular to an operation control method for allowing an industrial robot having a complicated mechanical structure such as an articulated type structure (or a robot) to operate while controlling the position and orientation of an end effecting point of the industrial robot.
In a conventional popular method for making an industrial robot perform desired operation, points on a path to be traced by a hand of the robot or an end effector attached to the hand are successively taught (by guiding the robot to positions of these points, for example), the space between these taught points is interpolated by straight lines, circular arcs or the like to realize the operation. In an alternatively conceivable method, a path to be traced by an end effector attached to the hand of a robot is given beforehand in the form of a computational expression represented by a generalized coordinate system suitable to describe a working path (or operating path), and a robot is activated by using the computational expression without using teaching.
For activating a robot by using these methods in any case, it becomes indispensable to use transformation computation from a generalized coordinate system describing working paths to a robot coordinate system having a displacement of each joint constituting the mechanism of the robot as the coordinate axes. (As the generalized coordinate system, rectangular coordinate system having an origin fixed at one point on a base stand of the robot, for example, is used.) That is to say, transformation computation for deriving the displacement of each joint of the robot such as the angle of a revolute joint is performed to realize the position and orientation of an end effector of the robot represented by the generalized coordinate system. In addition, it is necessary in principle to perform this computation in real time in synchronism with the operation of the robot to control the robot.
The commonly-applied method for this transformation computation, i.e., transformation from a generalized coordinate system to a robot-joint coordinate system, is such that a strict solution is analytically derived. A concrete example of this method is described in R. Paul, "Robot Manipulators", MIT Press, 1981, pp. 73-82. In the method of this example, computational expressions for transformation from a robot-joint coordinate system to a generalized coordinate system are derived, and therefrom computational expressions algebraically inverse computation, i.e., transformation from the generalized coordinate system to the robot-joint coordinate system are derived. It is a matter of course that there are other methods such as a method of obtaining necessary transformation computational expressions by using geometrical relationship.
In this exemplified method, on the basis of the position and orientation of an end effector of a robot hand represented by a generalized coordinate system, displacement (such as an angle of a revolute joint) of each joint of the robot satisfying the position and orientation is derived. In a method known in a field such as a field of master-slave manipulators similar to the industrial robots, the movement of a manipulator is represented by generalized coordinates as the linear velocity and the rotational velocity of an end effector of the manipulator hand, and the velocity of each joint of the manipulator (such as an angular velocity in case of a revolute joint) supplying the velocity represented by the generalized coordinates is derived to control the operation. A concrete example of this method is described in "Resolved Motion Rate Control". IEEE Transactions on Man-Machine Systems, MMS-10(2), pp. 47-53, 1969 et al. written by Daniell Whitney, for example. This method uses so-called Jacobian matrix of coordinate transformation matrix providing the relationship between displacement of a joint in the robot-joint coordinate system and the position and the pose in the generalized coordinate system. In this case, the Jacobian matrix has elements obtained as a result of partially differentiating each variable representing the position and the orientation in the generalized coordinate system by each variable in the robot-joint coordinate system. By using the inverse matrix of this matrix, it is possible to derive a velocity or an angular velocity which is the time differential (i.e. differential with respect to time) of displacement of each joint of a robot or a manipulator corresponding to the time differential, i.e., the velocity or angular velocity of the position and orientation of the end effector in the generalized coordinate system. It is thus possible to control the operation of the robot or the manipulator by using the resultant velocity or angular velocity.
The relationship between the displacement of each joint of a robot and the position and orientation of the end effector or the transformation expressions between the robot-joint coordinate system and the generalized coordinate system apparently vary depending upon the arrangement and configurational structure (or configuration) of the joints of the robot. Similarly, the form of the Jacobian matrix also varies depending upon the mechanism and structure of the robot. Several methods were proposed for definition and introduction of the generalized coordinate system with respect to the Jacobian matrix as collected in Orin and Schrader, "Efficient Computation of the Jacobian for Robot Manipulators", International Journal of Robotics Research, Vol. 3, No. 4, 1984.
Respective different problems remain in the first two conventional techniques described above. The contents of the first two conventional techniques will now be described successively.
In the first method, the computational expressions for transformation from a generalized coordinate system to a robot-joint coordinate system are derived as, so to speak, an analytical strict solution by using a technique such as an algebraic technique or a geometrical technique. This method has a merit that it is possible to obtain displacement of each joint of the robot mechanism correctly satisfying the requirement of the specified position of the end effecting point and specified orientation of the end effector. On the other hand, however, it becomes difficult to derive the above described transformation computational expressions for some forms of joint arrangement of robot mechanism, transformation computation being substantially prohibited in some cases. This will now be described in more detail. Whatever the joint arrangement of the robot mechanism may be, it is possible to derive the computational expressions for transformation from the robot-joint coordinate system to the generalized coordinate system by successively calculating coordinate conversion matrices by utilizing, for example, notation of Denavit and Hartenberg as described in "A kinematic notation for lower-pair mechanisms based on matrices", ASME Journal Applied Mechanics, Vol. 23, pp. 215-221, 1955. The transformation computation from the robot-joint coordinate system to the generalized coordinate system is hereafter referred to as "direct kinematics", and computation expressions for this purpose are hereafter referred to as "direct kinematic equation". On the other hand, the computational expressions for transformation from the generalized coordinate system to the robot-joint coordinate system, i.e., the transformation computational expressions for deriving, from the position of the end effecting point and the end effecting orientation, displacement of each joint of the robot satisfying the requirement of the position and orientation (hereafter referred to as "inverse kinematic equation") can be obtained by inversely solving the above described direct kinematic equation.
Letting a multi-dimensional vector having, as its elements, respective parameters of the position and pose of the end effecting point of the robot represented by the generalized coordinate system be X and a multi-dimensional vector having, as its elements, displacements of respective joints represented by the robot-joint coordinate system be .theta., the direct kinematic equation can be defined as a function EQU X=f(.theta.). (1)
At this time, the inverse kinematic equations are represented as the inverse function of the expressions of (1) as EQU .theta.=f.sup.-1 (X). (2)
When the form of a function f is given, the form of the inverse function f.sup.-1 cannot always be derived from the viewpoint of mathematics. Even if the above described expression of direct kinematic is given in case of robot mechanism as well, it does not necessarily follow that "expression of inverse kinematics" which is the inverse of "expression of direct kinematics" can always be derived with ease. To be concrete, in deriving the expression for inverse kinematics by using an algebraical solution such as successive substitution and elimination of respective parameters of the robot-joint coordinate system out of the expression of direct kinematics, the number of orders of an equation might become higher at some calculation stage or an equation might include a multiple transcendental function. In such a case, the form of the expression for inverse kinematics providing a so-called analytical strict solution cannot be derived definitely. Geometrical meaning of this fact will be supplementarily described in "DESCRIPTION OF THE PREFERRED EMBODIMENTS" of the present invention as well.
In operation control of a robot, the above described computation of inverse kinematics must be performed in real time during the operation of the robot when an effecting point of the robot is moved on a straight line in the space, for example. If the computational expression directly providing each displacement of each joint of the robot corresponding to the specified position and orientation of the end effecting point is apparent and can be easily calculated, there is no problem in operation control. If the expression of inverse kinematics cannot be obtained or is so complicated that it may not be calculated easily, the solution must be derived with convergence computation or the like by using a technique such as numerical analysis. Application to operation control in real time is thus difficult in the aspect of computation amount as well. In that, it becomes impossible to control the operation of the robot while controlling the position and pose of the end effecting point represented by the generalized coordinate system.
The second method of the prior art will now be described. In the second method, the Jacobian matrix of the function f of the expressions (1) shown in the description of the first method is used. A multi-dimensional vector X having respective parameters of the position and pose of the end effecting point of the robot as elements shown in the expressions (1) is represented as EQU X=(X.sub.1, X.sub.2, . . . , X.sub.n).sup.T ( 3)
where T denotes transpose and n represents the number of control parameters.
Likewise, the multi-dimensional vector .theta. having displacement values of respective joints of the robot is represented as EQU .theta.=(.theta..sub.1, .theta..sub.2, . . . , .theta..sub.m).sup.T( 4)
where m represents the number of joints and n.ltoreq.6 under normal conditions. It is said that the robot has no redundant degree of freedom when m=n.
It is now assumed that a matrix has .delta.x.sub.i /.delta..theta..sub.j as an element belonging to the i-th row, and the j-th column. This is called Jacobian matrix and is an important matrix providing relationship between the displacement velocity of each joint of a robot (hereafter referred to as velocity or angular velocity of each joint of a robot) and the velocity of an end effecting point of the robot and an angular velocity of change in effecting orientation at that point (hereafter collectively referred to as velocity and angular velocity of effecting point). Since the Jacobian matrix is usually a function of displacement of each joint of the robot, it is herein written as J(.theta.). Writing the differential of the above described velocity of each joint of the robot, i.e., the differential of displacement of each joint of the robot as .theta. and writing the differential of the velocity and the angular velocity of the end effecting point, i.e., the differential of the position and orientation of the end effecting point as X, it follows that EQU X=J(.theta.).multidot..theta. (5)
and EQU .theta.=J.sup.-1 (.theta.).multidot.X (6)
where J.sup.-1 (.theta.) exists whenever J(.theta.) is regular. At this time, J.sup.-1 (.theta.) can be always be derived from J(.theta.) analytically. If the velocity or angular velocity of an end effecting point of a robot is given, the velocity of each joint of the robot corresponding thereto is obtained as a strict solution so long as J(.theta.) is regular. When J(.theta.) is regular, the value of the Jacobian matrix, i.e., the Jacobian determinant (or so-called Jacobian) does not become zero. That is to say, relation det J(.theta.).noteq.0 holds true. Further, the pose of the robot causing relation det J(.theta.)=0 (which is different from the orientation of the end effecting point and is so-called configuration of robot) is called singular configuration and has important meaning in robot control.
In this method using the Jacobian matrix, i.e., the second method of the prior art, the velocity of each joint of a robot is derived from a given velocity of an end effecting point by using the expression (6). From the aspect of position control of robot, this method has a problem. When this method is used, the position and orientation of the end effecting point of the robot are obtained as a result of integrating both sides of the expression (5). It should be noted that J(.theta.) is a function of .theta.. In other words, the Jacobian matrix J(.theta.) is the differential of the function f(.theta.) and is nothing but a result of linearizing the function f(.theta.) at a value .theta.. Hence the Jacobian matrix provides only an approximate value in the vicinity of .theta.(parameter)=.theta.(constant).
This fact will now be further described from a different viewpoint. When the operation of a robot is to be controlled on the basis of computation by using the expression (5) or (6), a digital computer such as a microcomputer is usually used. This computation needs a finite time. Assuming now that this time is .DELTA.t, since .DELTA.t cannot be made zero, the expression (6) is realized in a form obtained by using .DELTA.x/.DELTA.t instead of X and .DELTA..theta./.DELTA.t instead of .theta.. Here .DELTA.x/.DELTA.t and .DELTA..theta./.DELTA.t can be written as ##EQU1## where EQU .DELTA.X.sub.i .apprxeq.X.sub.i .multidot..DELTA.t EQU .DELTA..theta..sub.j .apprxeq..theta..sub.j .multidot..DELTA.t.
At this time, the expression (6) becomes ##EQU2## Therefore, multiplying both sides with .DELTA.t, it follows that EQU .DELTA..theta..apprxeq.J.sup.-1 (.theta.).DELTA.X (10) EQU where EQU .DELTA..theta.=(.DELTA..theta..sub.1, .DELTA..theta..sub.2, . . . , .DELTA..theta..sub.m).sup.T ( 11) EQU .DELTA.X=(.DELTA.X.sub.1, .DELTA.X.sub.2, . . . , .DELTA.X.sub.m).sup.T.(12)
Letting the position and orientation of an end effecting point of a robot at certain time be XA, displacement of each corresponding joint of the robot be .theta..sub.A, and the position and orientation of the end effecting point of the robot which becomes the next target at this time be X.sub.B, therefore, .DELTA..theta. is obtained from the expression (10) by letting EQU .DELTA.X=X.sub.B -X.sub.A ( 13)
Each joint displacement .theta..sub.B of the robot which should correspond to X.sub.B is obtained by the relation EQU .theta..sub.B .apprxeq..theta..sub.A +.DELTA..theta.. (14)
That is to say, this is an approximation expression and essentially has an error. This fact is apparent because the robot moves during a time .DELTA.t as a result of operation control and a resultant change in displacement of each joint of the robot changes the value of the inverse Jacobian matrix J.sup.-1 (.theta.) which is a function of .theta.. Even if such an error is caused in a manipulator of master-slave scheme, for example, feedback with respect to the position and orientation of a slave manipulator is effected via a human operator in a master manipulator manipulated by the operator, and hence the slave manipulator is conversed to an originally desired path of operation. In many cases, therefore, this error does not pose a problem in practical use. However, an error is essentially unavoidable when this method is used, which is nontheless a problem of this method. The problem remains especially when this method is used for the operation control scheme of teaching playback type industrial robots.